<?php
defined('BASEPATH') or exit('No direct script access allowed');

/**
 * @model 菜单权限及接口权限配置，
 */
class AuthController extends Admin_Controller
{

    public function __construct()
    {
        try {
            parent::__construct();
            $this->load->service("PService/AuthService");
        } catch (\TPException $e) {
            exit($e->getRetJson());
        }
    }

    /**
     * [saveNav description]
     * @Name        保存菜单权限
     * @Description 方法描述
     * @Author      FengPQ
     * @DateTime    2020-08-12T19:30:03+0800
     * @OpenFlag:   0
     * @return      [type]                   [description]
     */
    public function saveNav()
    {
        $ret = $this->AuthService->saveMenus($_POST['role_id'], implode(',', $_POST['menus']));
        exit(retSucc($ret));

    }

    /**
     * getActionList function
     *
     * @Name 获取方法列和角色方法列
     * @Desc 方法描述
     * @OpenFlag 是否开放,1开放0权限控制
     * @Author Pekey
     * @Date 2020-09-03
     * @return void
     */
   /*  public function getActionList()
    {
        $ret = $this->AuthService->getActionDatas($_POST['role_id']);
        exit(retSucc($ret));
    } */
    
    /**
     * 方法名 function
     * 
     * @Name 获取方法列和角色方法列
     * @Desc 方法描述
     * @OpenFlag 是否开放,1开放0权限控制
     * @Author      LiAnXu
     * @Date 2020-11-26 13:53:28 星期四
     * @return  void
     */
    public function getActionList()
    {
        $ret = $this->AuthService->getActionList();
        exit(retSucc($ret));
    }

    /**
     * 方法名 function
     * 
     * @Name 获取方法列和角色方法列
     * @Desc 方法描述
     * @OpenFlag 是否开放,1开放0权限控制
     * @Author      LiAnXu
     * @Date 2020-11-26 13:53:53 星期四
     * @return  void
     */
    public function getActionRoleList()
    {
        if(!isset($_POST['role_id'])){
            exit(retJson(ErrCode::ErrCode_10002));
        }
        $ret = $this->AuthService->getActionRoleList($_POST['role_id']);
        exit(retSucc($ret));
    }

    /**
     * getMenuRoleList function
     * 
     * @Name 获取角色下可查看菜单
     * @Desc 方法描述
     * @OpenFlag 是否开放,1开放0权限控制
     * @Author      LiAnXu
     * @Date 2020-11-25 10:42:29 星期三
     * @return      [type]                   [description]
     */
    public function getMenuRoleList()
    {
        $ret= $this->AccountService->getMenuAuth($_POST['role_id']);
        exit(retSucc($ret));
    }

    /**
     * saveAction function
     * 
     * @Name 保存前台action
     * @Desc 方法描述
     * @OpenFlag 是否开放,1开放0权限控制
     * @Author      LiAnXu
     * @Date 2020-11-25 11:07:00 星期三
     * @return      [type]                   [description]
     */
    public function saveRoleAction()
    {
        $ret = $this->AuthService->saveRoleAction($_POST['role_id'], $_POST['actions']);
        exit(retSucc($ret));
    }

    /**
     * getRoleList function
     * 
     * @Name getRoleList
     * @Desc 获取角色列表数据
     * @OpenFlag 1
     * @Author      LiAnXu
     * @Date 2020-12-11 10:26:56 星期五
     * @return      [type]                   [description]
     */
    public function getRoleList(){
        $data = $this->AuthService->getRoleList($_POST);
        exit(retSucc($data));
    }
    
    /**
     * 方法名 function
     * 
     * @Name 获取方法列和角色方法列
     * @Desc 方法描述
     * @OpenFlag 是否开放,1开放0权限控制
     * @Author      LiAnXu
     * @Date 2020-12-11 13:09:28 星期五
     * @return      [type]                   [description]
     */
    public function saveRole()
    {
        $data = $this->AuthService->saveRole($_POST);
        exit(retSucc());
    }
    
    /**
     * setBatchRole function
     * 
     * @Name setBatchRole
     * @Desc 为多个账户设置角色
     * @OpenFlag 1
     * @Author      LiAnXu
     * @Date 2020-12-11 13:37:22 星期五
     * @return      [type]                   [description]
     */
    public function setBatchRole()
    {   
        if(!isset($_POST['role_id']) || !isset($_POST['adminList']) || !isset($_POST['action'])){
            exit(retJson(ErrCode::ErrCode_10002));
        }        
        $this->AuthService->setBatchRole($_POST['role_id'],$_POST['adminList'],$_POST['action']);
        exit(retSucc());
    }

    /**
     * 方法名 function
     * 
     * @Name 获取方法列和角色方法列
     * @Desc 方法描述
     * @OpenFlag 是否开放,1开放0权限控制
     * @Author      LiAnXu
     * @Date 2020-12-15 15:51:39 星期二
     * @return      [type]                   [description]
     */
    public function delRole()
    {
        if(!isset($_POST['id'])){
            exit(retJson(ErrCode::ErrCode_10002));
        }
        $this->AuthService->delRole($_POST['id']);
        exit(retSucc());
    }

    /**
     * getAdminByRole function
     * 
     * @Name getAdminByRole
     * @Desc 获取该角色下所有账户
     * @OpenFlag 1
     * @Author      LiAnXu
     * @Date 2020-12-15 16:04:30 星期二
     * @return      [type]                   [description]
     */
    public function getAdminByRole()
    {   
        if(!isset($_POST['role_id'])){
            exit(retJson(ErrCode::ErrCode_10002));
        }
        $data=$this->AuthService->getAdminByRole($_POST['role_id']);
        exit(retSucc($data));
    }

}
